package com.ai.service.made;


import com.ai.common.CommonResponse;
import com.ai.entity.made.camera.CameraIdBO;
import com.ai.entity.made.camera.CameraPO;
import com.ai.entity.made.camera.SwitchCameraAlgorithmBO;
import com.ai.entity.network.L1ToIdentifySysMessage;
import com.ai.model.param.AlgorithmBindServerParam;
import com.ai.model.vo.BatchOperateCameraParam;

import java.util.List;
import java.util.Map;

public interface AlgorithmCameraService {

    /**
     * 打开摄像头直播
     */
    CommonResponse onOpen(CameraIdBO cameraIdBO);

    /**
     * 关闭摄像头
     */
    CommonResponse onClose(CameraIdBO cameraIdBO);


    /**
     * 通过功能开关算法
     *
     * @param type
     * @param state
     */
    void bulkSwitchForTelegram(int type, int state, Integer delayTime) throws Exception;


    void bulkSwitchForTelegram(int type, int state, Integer delayTime, Map<String, Object> extendedProperties);


    CommonResponse detectionStart();

    /**
     * 批量开启摄像头
     * @param batchOperateCameraParam
     * @return
     */
    CommonResponse batchOpening(BatchOperateCameraParam batchOperateCameraParam);

    /**
     * 根据功能type获取绑定摄像头id
     * @param param
     * @return
     */
    CommonResponse getCameraIdsByType(AlgorithmBindServerParam param);

    /**
     * 根据摄像头信息，获取算法入参
     * @param item
     * @return
     */
    public SwitchCameraAlgorithmBO getSwitchCameraAlgorithmBO(CameraPO item);

    /**
     * 缓存指定的摄像头列表信息
     * @param cameraPOList
     */
    public void cacheAppointCameraList(List<CameraPO> cameraPOList);

}
